#ifndef SETTINGS_H
#define SETTINGS_H

#include "Judge.h"
#include <algorithm>
#include <cfloat>
#include <climits>
#include <cmath>
#include <ctime>
#include <iostream>
#include <memory>
#include <random>
#include <vector>
#include <cassert>

#define WIN_SCORE 999999
#define LOSE_SCORE -999999
#define WIN_GAIN 1
#define LOSE_GAIN -1
#define TIE_GAIN 0
#define TIE_SCORE 0
#define SEED 30
#define COEF 0.8
#define MY_MAX_RANDOME 1000000
#define TIME_LIMIT 2.9
#define NODE_NUMBER 600000
#define ROW_MAX_NUMBER 12
#define COL_MAX_NUMBER 12

using std::cout;
using std::endl;
using std::vector;
using std::default_random_engine;
using std::uniform_int_distribution;

enum Role
{
    USER,
    COMPUTER
};

enum State
{
    NOT_DEFINE = -1,     //未知的状态
    NOT_TERMINAL,   //表示不是终点
    WIN_TERMINAL,   //表示获胜的终点
    TIE_TERMINAL   //表示平局的终点
};
class UCTNode;
class UCTSearch;
class DecisionMaker;
#endif
